﻿using System;
using System.Collections.Generic;
using SharpSqlAnalyzer.nodes.hive;
using SharpSqlAnalyzer.nodes.mysql;

namespace SharpSqlAnalyzer.nodes
{
	// Token: 0x020002A3 RID: 675
	public class TCreateIndexSqlNode : TParseTreeNode
	{
		// Token: 0x1700045E RID: 1118
		// (get) Token: 0x0600164E RID: 5710 RVA: 0x0032706D File Offset: 0x0032526D
		// (set) Token: 0x0600164D RID: 5709 RVA: 0x00327064 File Offset: 0x00325264
		public List<TMySQLIndexOption> IndexOptionList
		{
			get
			{
				return this._indexOptionList;
			}
			set
			{
				this._indexOptionList = value;
			}
		}

		// Token: 0x0600164F RID: 5711 RVA: 0x00327075 File Offset: 0x00325275
		public void setColumnNameList(TOrderByItemList obl)
		{
			this._columnNameList = obl;
		}

		// Token: 0x06001650 RID: 5712 RVA: 0x0032707E File Offset: 0x0032527E
		public void setTableName(TObjectName on)
		{
			this._tableName = on;
		}

		// Token: 0x06001651 RID: 5713 RVA: 0x00327087 File Offset: 0x00325287
		public void setIndexTypeViaToken(TSourceToken st)
		{
			this.IndexTypeViaToken = st;
		}

		// Token: 0x1700045F RID: 1119
		// (get) Token: 0x06001653 RID: 5715 RVA: 0x00327099 File Offset: 0x00325299
		// (set) Token: 0x06001652 RID: 5714 RVA: 0x00327090 File Offset: 0x00325290
		public virtual TDummyList OptionList
		{
			get
			{
				return this._optionList;
			}
			set
			{
				this._optionList = value;
			}
		}

		// Token: 0x17000460 RID: 1120
		// (get) Token: 0x06001655 RID: 5717 RVA: 0x003270AA File Offset: 0x003252AA
		// (set) Token: 0x06001654 RID: 5716 RVA: 0x003270A1 File Offset: 0x003252A1
		public virtual TExpression FilterPredicate
		{
			get
			{
				return this._filterPredicate;
			}
			set
			{
				this._filterPredicate = value;
			}
		}

		// Token: 0x17000461 RID: 1121
		// (get) Token: 0x06001656 RID: 5718 RVA: 0x003270B2 File Offset: 0x003252B2
		public virtual bool Clustered
		{
			get
			{
				return this._isClustered;
			}
		}

		// Token: 0x17000462 RID: 1122
		// (get) Token: 0x06001657 RID: 5719 RVA: 0x003270BA File Offset: 0x003252BA
		public virtual bool NonClustered
		{
			get
			{
				return this._isNonClustered;
			}
		}

		// Token: 0x17000463 RID: 1123
		// (set) Token: 0x06001658 RID: 5720 RVA: 0x003270C2 File Offset: 0x003252C2
		public virtual TSourceToken ClusteredToken
		{
			set
			{
				if (value == null)
				{
					return;
				}
				if (value.ToString().Equals("clustered", StringComparison.CurrentCultureIgnoreCase))
				{
					this._isClustered = true;
					return;
				}
				if (value.ToString().Equals("nonclustered", StringComparison.CurrentCultureIgnoreCase))
				{
					this._isNonClustered = true;
				}
			}
		}

		// Token: 0x17000464 RID: 1124
		// (get) Token: 0x0600165A RID: 5722 RVA: 0x00327106 File Offset: 0x00325306
		// (set) Token: 0x06001659 RID: 5721 RVA: 0x003270FD File Offset: 0x003252FD
		public virtual TObjectName IndexComment
		{
			get
			{
				return this._indexComment;
			}
			set
			{
				this._indexComment = value;
			}
		}

		// Token: 0x17000465 RID: 1125
		// (get) Token: 0x0600165C RID: 5724 RVA: 0x00327117 File Offset: 0x00325317
		// (set) Token: 0x0600165B RID: 5723 RVA: 0x0032710E File Offset: 0x0032530E
		public virtual THiveTableProperties TableProperties
		{
			get
			{
				return this._tableProperties;
			}
			set
			{
				this._tableProperties = value;
			}
		}

		// Token: 0x17000466 RID: 1126
		// (get) Token: 0x0600165E RID: 5726 RVA: 0x00327128 File Offset: 0x00325328
		// (set) Token: 0x0600165D RID: 5725 RVA: 0x0032711F File Offset: 0x0032531F
		public virtual TObjectName TableLocation
		{
			get
			{
				return this._tableLocation;
			}
			set
			{
				this._tableLocation = value;
			}
		}

		// Token: 0x17000467 RID: 1127
		// (get) Token: 0x06001660 RID: 5728 RVA: 0x00327139 File Offset: 0x00325339
		// (set) Token: 0x0600165F RID: 5727 RVA: 0x00327130 File Offset: 0x00325330
		public virtual THiveTableFileFormat TableFileFormat
		{
			get
			{
				return this._tableFileFormat;
			}
			set
			{
				this._tableFileFormat = value;
			}
		}

		// Token: 0x17000468 RID: 1128
		// (get) Token: 0x06001662 RID: 5730 RVA: 0x0032714A File Offset: 0x0032534A
		// (set) Token: 0x06001661 RID: 5729 RVA: 0x00327141 File Offset: 0x00325341
		public virtual THiveRowFormat TableRowFormat
		{
			get
			{
				return this._tableRowFormat;
			}
			set
			{
				this._tableRowFormat = value;
			}
		}

		// Token: 0x17000469 RID: 1129
		// (get) Token: 0x06001664 RID: 5732 RVA: 0x0032715B File Offset: 0x0032535B
		// (set) Token: 0x06001663 RID: 5731 RVA: 0x00327152 File Offset: 0x00325352
		public virtual TObjectName InTableName
		{
			get
			{
				return this._inTableName;
			}
			set
			{
				this._inTableName = value;
			}
		}

		// Token: 0x1700046A RID: 1130
		// (get) Token: 0x06001666 RID: 5734 RVA: 0x0032716C File Offset: 0x0032536C
		// (set) Token: 0x06001665 RID: 5733 RVA: 0x00327163 File Offset: 0x00325363
		public virtual bool DeferredRebuildIndex
		{
			get
			{
				return this._deferredRebuildIndex;
			}
			set
			{
				this._deferredRebuildIndex = value;
			}
		}

		// Token: 0x1700046B RID: 1131
		// (get) Token: 0x06001668 RID: 5736 RVA: 0x0032717D File Offset: 0x0032537D
		// (set) Token: 0x06001667 RID: 5735 RVA: 0x00327174 File Offset: 0x00325374
		public virtual THiveIndexProperties IndexProperties
		{
			get
			{
				return this._indexProperties;
			}
			set
			{
				this._indexProperties = value;
			}
		}

		// Token: 0x1700046C RID: 1132
		// (get) Token: 0x0600166A RID: 5738 RVA: 0x0032718E File Offset: 0x0032538E
		// (set) Token: 0x06001669 RID: 5737 RVA: 0x00327185 File Offset: 0x00325385
		public virtual TObjectName AsTypeName
		{
			get
			{
				return this._asTypeName;
			}
			set
			{
				this._asTypeName = value;
			}
		}

		// Token: 0x1700046D RID: 1133
		// (get) Token: 0x0600166B RID: 5739 RVA: 0x00327196 File Offset: 0x00325396
		// (set) Token: 0x0600166C RID: 5740 RVA: 0x0032719E File Offset: 0x0032539E
		public virtual TOrderByItemList ColumnNameList
		{
			get
			{
				return this._columnNameList;
			}
			set
			{
				this._columnNameList = value;
			}
		}

		// Token: 0x1700046E RID: 1134
		// (get) Token: 0x0600166E RID: 5742 RVA: 0x003271B0 File Offset: 0x003253B0
		// (set) Token: 0x0600166D RID: 5741 RVA: 0x003271A7 File Offset: 0x003253A7
		public virtual TObjectName TableName
		{
			get
			{
				return this._tableName;
			}
			set
			{
				this._tableName = value;
			}
		}

		// Token: 0x1700046F RID: 1135
		// (set) Token: 0x0600166F RID: 5743 RVA: 0x003271B8 File Offset: 0x003253B8
		public virtual TSourceToken IndexTypeViaToken
		{
			set
			{
				if (value == null)
				{
					return;
				}
				if (value.tokencode == 514)
				{
					this._indexType = EIndexType.itUnique;
					return;
				}
				if (value.ToString().Equals("bitmap", StringComparison.CurrentCultureIgnoreCase))
				{
					this._indexType = EIndexType.itBitMap;
					return;
				}
				if (value.ToString().Equals("fulltext", StringComparison.CurrentCultureIgnoreCase))
				{
					this._indexType = EIndexType.itFulltext;
					return;
				}
				if (value.ToString().Equals("spatial", StringComparison.CurrentCultureIgnoreCase))
				{
					this._indexType = EIndexType.itSpatial;
				}
			}
		}

		// Token: 0x17000470 RID: 1136
		// (get) Token: 0x06001670 RID: 5744 RVA: 0x0032722E File Offset: 0x0032542E
		public virtual EIndexType IndexType
		{
			get
			{
				return this._indexType;
			}
		}

		// Token: 0x17000471 RID: 1137
		// (get) Token: 0x06001671 RID: 5745 RVA: 0x00327236 File Offset: 0x00325436
		public virtual TObjectName IndexName
		{
			get
			{
				return this._indexName;
			}
		}

		// Token: 0x06001672 RID: 5746 RVA: 0x0032723E File Offset: 0x0032543E
		public override void init(object arg1)
		{
			if (arg1 != null)
			{
				this._indexName = (TObjectName)arg1;
				this._indexName.ObjectType = 15;
				this._indexName.DbObjectType = EDbObjectType.index;
			}
		}

		// Token: 0x04001789 RID: 6025
		private List<TMySQLIndexOption> _indexOptionList;

		// Token: 0x0400178A RID: 6026
		private TDummyList _optionList;

		// Token: 0x0400178B RID: 6027
		private TExpression _filterPredicate;

		// Token: 0x0400178C RID: 6028
		private TObjectName _indexName;

		// Token: 0x0400178D RID: 6029
		private EIndexType _indexType;

		// Token: 0x0400178E RID: 6030
		private TObjectName _tableName;

		// Token: 0x0400178F RID: 6031
		private TOrderByItemList _columnNameList;

		// Token: 0x04001790 RID: 6032
		private TObjectName _asTypeName;

		// Token: 0x04001791 RID: 6033
		private bool _deferredRebuildIndex;

		// Token: 0x04001792 RID: 6034
		private THiveIndexProperties _indexProperties;

		// Token: 0x04001793 RID: 6035
		private TObjectName _inTableName;

		// Token: 0x04001794 RID: 6036
		private THiveRowFormat _tableRowFormat;

		// Token: 0x04001795 RID: 6037
		private THiveTableFileFormat _tableFileFormat;

		// Token: 0x04001796 RID: 6038
		private TObjectName _tableLocation;

		// Token: 0x04001797 RID: 6039
		private THiveTableProperties _tableProperties;

		// Token: 0x04001798 RID: 6040
		private TObjectName _indexComment;

		// Token: 0x04001799 RID: 6041
		private bool _unique;

		// Token: 0x0400179A RID: 6042
		private bool _isClustered;

		// Token: 0x0400179B RID: 6043
		private bool _isNonClustered;
	}
}
